package com.tju.resource.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 报工单
 *
 * @TableName tb_report_order
 */
@TableName(value = "tb_report_order")
@Data
public class TbReportOrder implements Serializable {
    /**
     * 报工单ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 父级id指向报工单id
     */
    private Long parentId;
    /**
     * 生产计划id
     */
    private Long ppId;

    /**
     * 物料id
     */
    private Long matlId;
    /**
     * 外发id
     */
    private Long outwardId;

    public TbReportOrder() {
    }

    public TbReportOrder(Long matlId,Long outwardId, Long prcId, String reportBy, Integer reportQty,String remark) {
        this.matlId = matlId;
        this.outwardId = outwardId;
        this.prcId = prcId;
        this.reportBy = reportBy;
        this.reportQty = reportQty;
        this.remark = remark;
    }

    /**
     * 工序组id
     */
    @TableField(exist = false)
    private Long prcId;

    /**
     * 报工人
     */
    private String reportBy;

    /**
     * 报工数量
     */
    private Integer reportQty;

    /**
     * 上一个工序(从xx工序来)
     */
    private String onFrom;

    /**
     * 下一个工序(将去到的下个工序)
     */
    private String toWhere;

    /**
     * 当前所在工序,从1开始,每过完一个工序+1,对应到工序组中的工艺节点顺序
     */
    private Integer curStep;

    /**
     * 报工时间
     */
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 备注
     */
    private String remark;
    /**
     * 是否已审核(0：未审核1:已审核)
     */
    private int finished;
    /**
     * 机台
     */
    @TableField(exist = false)
    private String mechName;
    /**
     * 指令号
     */
    @TableField(exist = false)
    private String cmdNumber;
    /**
     * 物料名
     */
    @TableField(exist = false)
    private String matlName;
    /**
     * 物料颜色
     */
    @TableField(exist = false)
    private String color;
    /**
     * 物料编码
     */
    @TableField(exist = false)
    private String matlNumber;
    /**
     * 订单号
     */
    @TableField(exist = false)
    private String orderNumber;
    /**
     * 工序名称
     */
    @TableField(exist = false)
    private String processName;
    /**
     * 生产型号
     */
    @TableField(exist = false)
    private String specNumber;
    /**
     * 成品数
     */
    @TableField(exist = false)
    private Long qualify;
    /**
     * 半成品
     */
    @TableField(exist = false)
    private Long disQua;
    /**
     * 所有子报工对象集合
     */
    @TableField(exist = false)
    private List<TbReportOrder> children;


}